username = "高嘉银"


def func():
    global username  # 只有加global关键字才能对全局变量进行修改
    username = "廖立晴"
    pass


func()
print(username)

"""
内部函数：
特点：
1.可以访问外部函数的变量
2.内部函数可以修改外部函数的可变类型的变量
3.内部函数修改全局的不可变变量是，需要在内部函数声明global变量名，
    内部函数修改外部函数的不可变的变量时，需要在内部函数中声明：nonlocal 变量名
4.locals() 以字典的形式返回本地变量有哪些
    globals()返回全局的变量，里面有一些系统的变量
"""
a = 100


def func1():
    b = 99
    global a
    a = 88
    print(a)

    def inner_func():
        global a
        nonlocal b  # 内部函数的局部变量
        a = 77
        b = 20
        print(b)
        pass

    inner_func()
    print(b)
    print(locals())  # 内置函数，可以看到在当前函数中声明的内容有哪些
    pass


print(globals())
func1()
print(a)
